Computing applications such as computer games and multimedia applications have evolved from using controllers, remotes, keyboards, mice, or the like to allow users to manipulate game characters or other aspects of an application. In particular, computer games and multimedia applications have begun employing cameras and software gesture recognition engines to provide a natural user interface (“NUI”). With NUI, raw joint data and user gestures are detected, interpreted, and used to control characters or other aspects of an application. For example, in addition to cursor control and/or user-based selections, NUIs may also be configured to control the movement of digital avatars, which are a graphical representation of a user (or the user's alter ego or other character).
Notably, many advances have been developed in the realm of NUI systems, such as for detecting a person in the field of view of an image sensor, and correctly identifying the positions of his or her body parts within the field of view (e.g., using body tracking or skeletal tracking techniques). Still, NUI technology is an emerging field, particularly with regards to avatar control, and is currently limited in its applicability.
For instance, computer animation is typically a very time consuming activity requiring computer graphics (CG) expertise and use of specialist software tools and considerable computing power. First a model of an object will be generated in the form of a 3D mesh. A CG animator will then generate and embed a skeleton inside the 3D mesh of the object being animated and paint individual bone weights onto each vertex. At runtime, motion capture data or an inverse kinematics engine drives the bones of the character, which then transforms the mesh. Depending upon the level of experience of the user and the complexity of the object being animated, this process may take hours or days.